﻿using System.ServiceModel;

namespace CPN.PJN.Service.Logging
{
    /// <summary>
    /// Cette interface définit le contrat de service pour les logs
    /// NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "ILoggerService1" in both code and config file together.
    /// </summary>
    [ServiceContract(Namespace = "")]
    public interface ILoggerService
    {
        /// <summary>
        /// Cette méthode écrit le message de log
        /// </summary>
        /// <param name="message">Message de log</param>
        [OperationContract(IsOneWay=true)]
        void Write(string message);

        /// <summary>
        /// Cette méthode écrit le message de log dans une catégorie précise
        /// </summary>
        /// <param name="message">Message de log</param>
        /// <param name="category">Catégorie de log</param>
        [OperationContract(IsOneWay = true)]
        void WriteWithCategory(string message, string category);

        /// <summary>
        /// Cette méthode écrit le message de log dans une catégorie précise et sa Sévérité
        /// </summary>
        /// <param name="message">Message de log</param>
        /// <param name="category">Catégorie de log</param>
        /// <param name="severity">Sévérité</param>
        [OperationContract(IsOneWay = true)]
        void WriteWithSeverity(string message, string category, int severity);
    }
}
